A join is a fundamental operation in relational algebra used to combine records from two tables in a relational database, resulting in a new and temporary table, sometimes called a joined table. The join can also be considered an operation that relates tables by values common to the tables.
Many join algorithms have been developed which have variable performance for different memory sizes and cases of indexed, sorted, and unsorted inputs. As a consequence of the variable performance for different cases and memory sizes, traditionally three alternative join algorithms are used to achieve the highest run-time performance in all cases, substantially covering the entire range of possible join situations.